/* The file is saved in UTF-8 codepage.
 * Check: «Stereotype», Section mark-§, Copyright-©, Alpha-α, Beta-β, Smile-☺
 */
package cz.pecinovsky.english.lootp.ufo;
/*******************************************************************************
 *<pre>
 * Předchozí:   Není - toto_je_nově_definovaná_třída
 *              Ttt v projektu Ppp
 * Následující: Prozatím není
 *
 * Projekt  Ppp
 *   + Přidáno
 *   - Odebráno
 *   ~ Změněno
 *</pre>
 */


////////////////////////////////////////////////////////////////////////////////
//%%+  +++++ End of ignored starting test - place for imports +++++

import java.awt.geom.Rectangle2D;


/*******************************************************************************
 * Instance třídy představují startovací a přistávací rampy.
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public class Rampa extends Dispečer.Tvar
{
//== CONSTANT CLASS ATTRIBUTES =================================================

    /** Odkaz na okno, ve kterém se všechno kreslí. */
    protected static final Vesmír V = Vesmír.getVesmír();



//== VARIABLE CLASS ATTRIBUTES =================================================
//== CONSTANT INSTANCE ATTRIBUTES ==============================================

    Rectangle2D.Double čtverec;
    Číslo číslo;



//== VARIABLE INSTANCE ATTRIBUTES ==============================================
//== CLASS GETTERS AND SETTERS =================================================
//== OSTATNÍ METODY TŘÍDY ======================================================

//##############################################################################
//== CONSTUCTORS AND FACTORY METHODS ===========================================

    /***************************************************************************
     * Vytvoří na zadaných souřadnicích rampu se zadaným číslem.
     *
     * @param číslo  Číslo konstruované rampy
     * @param x      Vodorovná souřadnice konstruované rampy
     * @param y      Svislá souřadnice konstruované rampy
     */
    public Rampa(int číslo, double x, double y)
    {
        super(x, y, 2*Dispečer.VELIKOST, Dispečer.barvaRampy);
        this.číslo = new Číslo(číslo, x, y);
        int r2 = rozměr >> 1;   //Poloviční rozměr
        čtverec = new Rectangle2D.Double(
            (int)xPos-r2, (int)yPos-r2, rozměr, rozměr);
        nakresli();
    }



//== INSTANCE GETTERS AND SETTERS ==============================================
//== PŘEKRYTÉ METODY IMPLEMENTOVANÝCH ROZHRANÍ =================================

    /***********************************************************************
     * Nakreslí svoji instanci.
     * Při kreslení považuje za svoji pozici střed čtverce.
     */
    @Override
    public void nakresli()
    {
        V.setBarvaPopředí(color);
        V.zaplň(čtverec);
        číslo.nakresli();
    }



//== PŘEKRYTÉ ABSTRAKTNÍ METODY RODIČOVSKÉ TŘÍDY ===============================
//== PŘEKRYTÉ KONKRÉTNÍ METODY RODIČOVSKÉ TŘÍDY ================================
//== NOVĚ ZAVEDENÉ METODY INSTANCÍ =============================================

    /***********************************************************************
     * Zaparkuje zadané UFO nad svým středem.
     *
     * @param ufo  UFO, které je třeba zaparkovat.
     */
    public void zaparkuj(IUFO ufo)
    {
        ufo.vypniMotory();
        ufo.setSpeed(xPos - ufo.getX(),  yPos - ufo.getY());
        ufo.popojeď(1);
        ufo.setSpeed(0, 0);
    }



//== PRIVATE AND AUXILIARY CLASS METHODS =======================================
//== PRIVATE AND AUXILIARY INSTANCE METHODS ====================================
//== VNOŘENÉ A VNITŘNÍ TŘÍDY ===================================================
//== TESTING CLASSES AND METHODS ===============================================
}
